﻿using CommandLine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WotModSync
{
    [Verb("create", HelpText = "Creates a new ModPack on Google Drive")]
    class CreateOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPackName to create")]
        public string ModPackName { get; set; }

        [Option('e', "empty", Required = false, HelpText = "Just create ModPack Directory on Google Drive", Default = false)]
        public bool Empty { get; set; }

        [Option('o', "output", Required = false, HelpText = "WOT Game Directory")]
        public string Output { get; set; }
    }

    [Verb("update", HelpText = "Updates either Local or Remote")]
    class UpdateOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPack from which Files are local updated or remote updated.")]
        public string ModPackName { get; set; }

        [Option('r', "remote", Required = false, HelpText = "Updates the ModPack on Google Drive. If not set, local Folder will be updated with remote Files", Default = false)]
        public bool Remote { get; set; }

        [Option('d', "delete", Required = false, HelpText = "Delete Files which are to much", Default = false)]
        public bool Delete { get; set; }

        [Option('o', "output", Required = false, HelpText = "WOT Game Directory")]
        public string Output { get; set; }

        [Option('a', "ask", Required = false, HelpText = "Don't Ask before updating", Default = false)]
        public bool Ask { get; set; }

        [Option('s', "start", Required = false, HelpText = "Start WOT Launcher",Default =false)]
        public bool Start { get; set; }
    }

    [Verb("install", HelpText = "Install a ModPack Local")]
    class InstallOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPackName which will be installed")]
        public string ModPackName { get; set; }

        [Option('o', "output", Required = false, HelpText = "WOT Game Directory")]
        public string Output { get; set; }
    }

    [Verb("delete", HelpText = "Deletes a ModPack on Google Drive")]
    class DeleteOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPackName which will be deleted")]
        public string ModPackName { get; set; }
    }

    [Verb("rename", HelpText = "Renames a ModPack on Google Drive")]
    class RenameOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPackName which will be rename")]
        public string ModPackName { get; set; }

        [Option('n', "newModPackName", Required = true, HelpText = "The new ModPackName ")]
        public string NewModPackName { get; set; }
    }

    //[Verb("share", HelpText = "Shares a ModPack on Google Drive to a Email")]
    //class ShareOptions
    //{
    //    [Option('m', "modPackName", Required = true, HelpText = "The ModPackName which will be rename")]
    //    public string ModPackName { get; set; }

    //    [Option('e', "email", Required = true, HelpText = "Email Address")]
    //    public string Email { get; set; }

    //    [Option('r', "role", HelpText = "Role (reader/writer)", Default = "reader")]
    //    public string Role { get; set; }
    //}

    //[Verb("removeshare", HelpText = "Removes Shares from ModPack on Google Drive")]
    //class RemoveShareOptions
    //{
    //    [Option('m', "modPackName", Required = true, HelpText = "The ModPackName which will be rename")]
    //    public string ModPackName { get; set; }

    //    [Option('e', "email", HelpText = "Email Address")]
    //    public string Email { get; set; }

    //    [Option('r', "role", HelpText = "Role (reader/writer)", Default = "reader")]
    //    public string Role { get; set; }
    //}


    [Verb("list", HelpText = "List all Files in a ModPack")]
    class ListOptions
    {
        [Option('m', "modPackName", Required = true, HelpText = "The ModPackName from which all Files are listed")]
        public string ModPackName { get; set; }
    }

    [Verb("show", HelpText = "Show all Modpacks on Google Drive")]
    class ShowOptions
    {

    }

}
